import { ExtractPropTypes } from 'vue'
import { validatorColorValue, validatorSizeValue } from '../../utils'

/**
 * 分隔符配置
 */
 export type CountScrollSeparator = {
  /** 十进制 */
  decimal?: string,
  /** 千分位 */
  thousandths?: string
}

/**
 * props参数
 */
export const countScrollProps = {
  /** 需要显示的值 */
  value: {
    type: [String, Number],
    default: 0
  },
  /** 字体颜色, 支持内置颜色的值、十六进制、rgb()、rgba()的值 */
  color: {
    type: String,
    default: '',
    validator: (value: string) => {
      return validatorColorValue('color', value)
    }
  },
  /** 字体大小, 默认单位为rpx */
  fontSize: {
    type: [String, Number],
    default: '',
    validator: (value: string | number) => {
      return validatorSizeValue(value)
    }
  },
  /** 加粗字体 */
  bold: {
    type: Boolean,
    default: false
  },
  /** 动画持续时间, 单位ms */
  duration: {
    type: [String, Number],
    default: 1500
  },
  /** 分隔符配置 */
  separatorOption: {
    type: Object,
    default: (): CountScrollSeparator => {
      return {
        decimal: '.',
        thousandths: ''
      }
    }
  }
}
export type CountScrollProps = ExtractPropTypes<typeof countScrollProps>
